/**
 * Auteur: Steven Ferey
 * Date: 25/10/11
 */

/**
 * Prend en parametre un mot en français et 
 * vérifie si ce mot est présent dans la base de données
 * return true si le mot n'est pas présent.
 *          false sinon.
 */
function req_suggestion(mot_fr) {
    
    var bsuggestion = false ;
    
    //XMLHttpRequest est supporté par Internet Explorer 5.0+, Safari 1.2, Mozilla 1.0 / Firefox, Netscape 7
    if(document.all) var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer
    else var XhrObj = new XMLHttpRequest(); //Mozilla

    content = document.getElementById("mot_fr_check"); 	//zone d'affichage
	
    XhrObj.open("POST", "verif_suggestion.php", false);//false pour synchrone

    XhrObj.onreadystatechange = function()
    {
        if (XhrObj.readyState == 4 && XhrObj.status == 200) {//si le traitement est terminé
            
            if (XhrObj.responseText) {//si le mot n'est pas present dans la base
                
                content.innerHTML='<img src="img/success.png" alt=""/> OK';
                bsuggestion = true; // c'est un nouveau mot
            
            } else if (!XhrObj.responseText){//si le mot est present dans la base
                
                content.innerHTML='<img src="img/error.png" alt=""/> Déjà présent';
                bsuggestion = false; // erreur mot déjà existant
            }
        }
    }

    XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    XhrObj.send('mot_fr='+mot_fr);//on envoi le parametre
    
    return bsuggestion;
}

/**
 * prend en parametre un mot français et anglais
 * pour l'ajouter a la base de donnees
 * return true si l'enregistrement est effectué
 *          false sinon.
 */
function add_suggestion(mot_fr, mot_en){
    
    var bsuggestion = false ;

    if(document.all) var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer
    else var XhrObj = new XMLHttpRequest(); //Mozilla
	
    XhrObj.open("POST", "add_suggestion.php", false);//false pour synchrone

    XhrObj.onreadystatechange = function()
    {
        if (XhrObj.readyState == 4 && XhrObj.status == 200) {//si le traitement est terminé
            bsuggestion = XhrObj.responseText;//resultat du traitement
        }
    }

    XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    XhrObj.send('fr='+mot_fr+'&en='+mot_en);//on envoi les parametres

    return bsuggestion;
}

/**
 * Prend en parametre le code saisi par l'utilisateur
 * return true si le code est le meme que l'image
 *          false sinon.
 */
function verif_code(code){
    var bcode = false ;

    if(document.all) var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer
    else var XhrObj = new XMLHttpRequest(); //Mozilla
	
    XhrObj.open("POST", "verif_code_suggestion.php", false);//false pour synchrone

    XhrObj.onreadystatechange = function()
    {
        if (XhrObj.readyState == 4 && XhrObj.status == 200) {//si le traitement est terminé
            bcode = XhrObj.responseText ;//resultat du traitement
        }
    }

    XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    XhrObj.send('code='+code);//on envoi le parametre

    return bcode;
}


/**
 * verifie si les champ sont correctement remplis
 * puis enregistre la suggestion dans la base.
 * 
 * L'utilisateur est averti de la suite de sa demande 
 * dans un message alerte JavaScript.
 */
function testChamps(f) {
    
    if(f.mot_en.value == '' || f.mot_fr.value == '' || f.code.value == ''){
        jError('Renseignez tous les champs svp !');
        return false;
    }else if (!req_suggestion(f.mot_fr.value)) {
        jError('votre mot est déjà présent dans la base');
        return false;
    }else if(!verif_code(f.code.value)){
        jError('Code saisi incorrect');
        return false;
    }else if(!add_suggestion(f.mot_fr.value, f.mot_en.value)){
        jError('Une erreur est survenue lors de l\'enregistrement.');
        return false;
    }else{
        jSuccess('Votre suggestion a été soumise au modérateur.');
    }
        
    return true;
}
